package model.utilidades;
import model.interfaces.IManejadorDeTiempo;


public class ManejadorDeTiempo implements IManejadorDeTiempo{
	private long tiempoInicial;
	private int contadorTicks,cantidadMaximaTicks;
	
	public ManejadorDeTiempo(int cantidadMaximaTicks){
		resetearContadrDeTicks(cantidadMaximaTicks);
	}

	private long lapsoEntre(long tiempoInicial,long tiempoActual) {
		return tiempoActual-tiempoInicial;
	}
	
	public boolean llegoALaCantidadDeTicks(){
		return (contadorTicks >= cantidadMaximaTicks);
	}

	public void actualizarCantidadDeTicks() {
		long tiempoActual = System.currentTimeMillis();
		if(lapsoEntre(tiempoInicial,tiempoActual) > Constantes.DELTA_DE_TIEMPO){
			contadorTicks++;
			tiempoInicial = tiempoActual;
		}
	}

	public void resetearContadrDeTicks(int cantidadMaximaTicks) {
		this.tiempoInicial = System.currentTimeMillis();
		this.cantidadMaximaTicks = cantidadMaximaTicks;
		this.contadorTicks = 0;		
	}
}